home *** CD-ROM | disk | FTP | other *** search
/ Underground / Underground CD1.iso / hack / PDFAQ.ZIP / maxcrypt.txt < prev    next >
Encoding:
Text File  |  1998-03-12  |  3.1 KB  |  62 lines

  1. maxcrypt.c - by Permission Denied (Maxiu)
  2.  
  3.  No wiΩc w przyp│ywie nud≤w przyp│yn▒│ do mnie pomys│ na cryptera. R≤┐ni siΩ
  4. on tym od czΩsto stosowanych XORowc≤w, ┐e nawet ma│a zmiana has│a czy pliku
  5. wej╢ciowego powoduje du┐▒ zmianΩ pliku wyj╢ciowego.
  6. Algorytm kodowania polega na przesuwaj▒cym siΩ oknie z kt≤rego obliczany
  7. jest klucz kt≤rym nastΩpnie jest XORowany nastΩpny niekodowany bajt.
  8. W praktyce wygl▒da to tak, s▒ dwa bufory:
  9. p1 -------------------------------------
  10. p2 -------------------------------------
  11. Do obu jest wpisywane na pocz▒tku has│o:
  12. p1 dla dhsu-----------------------------
  13. p2 dla dhsu-----------------------------
  14. NastΩpnie │adowane s▒ dane do p1:
  15. p1 dla dhsu12345678901234567890123456789
  16. p2 dla dhsu-----------------------------
  17. Teraz cyklicznie jest wywo│ywana funkcja obliczaj▒ca klucz z 8 bajt≤w (taka
  18. jest d│ugo╢µ has│a) p1 i 8 bajt≤w p2, kluczem XORujemy p1 i wynik wpisujemy
  19. do p2
  20. p1 dla dhsu12345678901234567890123456789
  21. p2 dla dhsuA----------------------------
  22.    \--\/--/
  23.     okienko
  24. Przy ka┐dym nastΩpnej iteracji okienko przesuwa siΩ w prawo, a klucz jest
  25. obliczany tak┐e z zakodowanej czΩ╢ci danych
  26. p1 dla dhsu12345678901234567890123456789
  27. p2 dla dhsuAB---------------------------
  28.     \--\/--/\A jest zakodowane z porzedniej iteracji, teraz jest w okienku
  29.     okienko    wiΩc nastΩpny klucz zale┐y od wcze╢niejszych oblicze±.
  30. Tak wiΩc po pewnym czasie, wszystko jest obliczane bez udzi│u has│a, jednak
  31. nadal ma ono du┐y wp│yw na kodowanie, gdy┐ decydowa│o ono o poprzednich
  32. XORowaniach, a one maja wp│yw dalej (zakreci│em siΩ trochΩ, ale wierzcie ┐e
  33. ma wp│yw).
  34. Troche pieprzenia by│o z wczytywaniem danych gdy┐ bufor zazwyczaj jest
  35. mniejszy od danych, ale uda│o mi siΩ z tym uporaµ.
  36. Obs│uga jest prosta, wej╢cie mo┐e byµ z pliku, wtedy podajemy jego nazwΩ,
  37. lub ze stdin, przez co mo┐na skierowaµ do niego jakie╢ dane. Wyj╢cie
  38. standardowo jest do stdout (znowu mo┐na przekierunkowaµ) lub je╢li podamy
  39. opcjΩ -o <nazwa> to do pliku. Has│o podajemy za pomoc▒ opcji -p <has│o> lub
  40. je╢li go tak nie podamy, to sam siΩ o to spyta. Maksymalna d│ugo╢µ has│a to
  41. po│owa bufora (512 znak≤w standardowo), ale mo┐na je wprowadziµ tylko za
  42. pomoc▒ -p bo pobieranie has│a od u┐ytkownika korzysta z fukcji bibliotecznej
  43. getpass a ona ma ograniczenie do 128 znak≤w. Ale i tak chyba styknie.
  44. Je╢li chcemy jeszcze bardziej zamotaµ to mo┐na u┐yµ:
  45.  maxcrypt plikin -p <has│o1> | maxcrypt -p <has│o2> -o plikout
  46. Rozkodowywuj▒c nale┐y podaµ has│a w odwrotnej kolejno╢ci. Je╢li podamy dwa
  47. takie same has│a przy kodowaniu, to w rzeczywisto╢ci nic nie zmienimy :) np.
  48.  ls | maxcrypt -p dupa | maxcrypt -p dupa
  49. wy╢wietli nam katalog bez zmian.
  50. Mo┐na tak┐e kodowaµ bezpo╢rednio:
  51.  maxcrypt -p sucka -o plik
  52. wpisujemy z kalwiatury tak jak przy cat >, z tym mia│em sporo problem≤w bo
  53. powoduje to zmiane ilo╢ci wczytywanych naraz bajt≤w, ale te┐ ju┐ to
  54. naprawi│em.
  55. Aha, nie nale┐y u┐ywaµ dwa razy wpisywania has│a bez -p na raz, bo nie
  56. zadzia│a (oba procesy bΩd▒ chcia│y korzystaµ z klawiatury).
  57. Jestem pewien ┐e s▒ jeszcze b│Ωdy, ale ujawni▒ siΩ one dopiero podczas
  58. u┐ytkowania, wiΩc jak co╢ zauwa┐ycie to piszcie (maxiu@kki.net.pl). Wog≤le
  59. piszcie :)
  60. No to tyle na razie, owocnego cryptowania.
  61.  
  62.  Maxiu